package cn.javass.dp.state.example7;

import java.util.Scanner;

public class ProjectManagerState implements  LeaveRequestState {

    @Override
    public void doWork(StateMachine request) {
        //先把业务对象造型回来
        LeaveRequestModel lrm = (LeaveRequestModel) request.getBusinessVO();
        System.out.println("项目经理审核中，请稍后。。。。。");
        //业务处理，把审核结果存放到数据库中

        //模拟用户处理界面，通过控制台来读取数据
        System.out.println(lrm.getUser() + ",申请从" +lrm.getBeginDate() + "开始请假" + lrm.getLeaveDays() +"天，" +
                "请项目经理审核（1、统一，2、不同意");

        Scanner scanner = new Scanner(System.in);

        if (scanner.hasNext()) {
            int a = scanner.nextInt();
            String  result = "不同意";
            if (a == 1) {
                if (lrm.getLeaveDays() >= 3) {
                    request.setState(new DepManagerState());
                    request.doWork();
                } else {
                    request.setState(new AuditOverState());
                    //给申请人增加一个工作，让他查看审核结果
                    request.doWork();
                }
            } else {
                request.setState(new AuditOverState());
                //给申请人增加一个工作，让他查看审核结果
                request.doWork();
            }
        }

    /*    //根据选择的结果和条件来设置下一步
        if ("同意".equals(lrm.getResult())) {
            if (lrm.getLeaveDays() >= 3) {

                //为部门经理增加一个工作
            } else {

            }

        } else {
            //项目经理不同意，审核结束
            request.setState(new AuditOverState());
            //给申请人增加一个工作，让他查看审核结果
        }*/
    }
}
